/**
 * @description 获取localStorage值；可以使用'.'多级链式查询,如：userInfo.name;
 * @param {String} dataName 需要获取的参数名
 * @returns 参数值/undefined
 * @example
 *
 * ```js
 * let obj={
 *    uid:'001',
 *    userInfo:{
 *       name:'tom',
 *       age:'18',
 *    }
 * }
 * 
 * localStorageGet('uid')
 * //return 001
 * 
 * // 多级参数名链式查找
 * localStorageGet('userInfo.age')
 * //return 18
 * ```
 * 
 */
 const localStorageGet=(dataName)=>{
    if(dataName){
        let classArr=dataName.split('.');
        // 取第一級
        let data=localStorage.getItem(classArr[0]);
        data=JSON.parse(data);

        // 从第二级名称开始遍历
        for(let i=1; i<classArr.length; i++){
            let num=0;
            // 遍历当前数据层
            for(let name in data){
                // 同名则查找下一层
                if(name==classArr[i]){
                    data=data[name];
                    num=1;
                }
            }
            // 中途未找到相关参数直接返回
            if(num==0){
                return undefined;
            }
        }

        return data;
    }else{
        console.error('sessionStorageGet未输入dataName')
    }
}

export default localStorageGet;
